عنوان کامل پروژه:
پروژه طراحی الگوریتم موازی جایگشت برای حل مسائل رمزگشایی با استفاده از نرم افزارهای پایتون و #C و به همراه فیلم آموزشی نرم افزارهای پایتون و #C
در این پروژه با استفاده از نرم افزارهای پایتون و #C یک الگوریتم جدید برای محاسبه جایگشت ارائه شده است که این الگوریتم قابلیت موازیسازی را دارا است. مسئله جایگشت یکی از مسائل مهم در زمینه ریاضیات است که به دلیل مرتبه اجرای بالای آن یعنی !n، همواره دانشجویان و اساتید در پی آن هستند که روشی را پیدا کنند که بتوانند جایگشتهای یک مجموعه را سریعتر به دست آورند. با توجه به اینکه این مسئله از نوع مسائل np است، پس پیدا کردن یک روش اجرای سریع که موازی نیز باشد بسیار پر اهمیت خواهد بود. در این پژوهش با استفاده از نرم افزار پایتون و #C یک الگوریتم ساده اما کارا ارائه و پیادهسازی شده است که قابلیت موازیسازی نیز دارد و میتواند با استفاده از این قابلیت، جایگشتهای مراتب بالا را نیز محاسبه و تولید نماید.
جایگشت کاربردهای مختلفی در ریاضی و مسائل رمزنگاری دارد. در مسائل رمزگشایی، درصورت داشتن مجموعهای از حروف کاندید برای یک کلید، با جایگشت این مجموعه تمامی حالات ممکن ایجاد شده که با آزمایش آن میتوان به کلید پی برد. هم اکنون روشی که برای شکستن رمز در برنامههایی همچون Zip استفاده میگردد از این روش بهره میبرد. این روش حمله Brute force نام دارد. در این پروژه سعی داریم که با استفاده از نرم افزار پایتون و #C و با ارائه این الگوریتم، نحوه تولید داده برای آزمایش روی برنامه مورد نظر را با استفاده از موازی سازی تسریع کنیم.
آنچه در این کد خواهید آموخت:
۱- نحوه پیاده سازی یک کد طراحی شده به روش تقسیم و غلبه
۲- آشنایی با روش BruteForce و تولید فضای حالات ممکن
۳- استفاده از جایگشت در مسائل رمزگشایی
۴- نحوه محدودسازی فضای حالت با فرضهای قابل قبول
نکات و الزامات:
۱- پیادهسازی به دو زبان برنامهنویسی #C و پایتون
۲- آشنایی با زبانهای #C و پایتون
۳- آشنایی با مفاهیم موازیسازی و همچنین روش برنامهنویسی تقسیم و غلبه
۴- یادگیری سادهتر نحوه عملکرد کد در زبان برنامهنویسی پایتون
۵- GUI مناسب جهت کار عملی با کد در برنامه نوشته شده به زبان #C
۶- قابلیت اجرای کد #C در Visual Studio 2010 و بالاتر
۷- قابلیت اجرای برنامه پایتون بر روی مفسر پایتون 2.7 به بالا
نتیجهگیری:
۱- ارائه و پیادهسازی یک الگوریتم کارا برای محاسبه جایگشتها
۲- استفاده ازجایگشت برای تولید مجموع کلیدها برای رمزگشایی روش Brute Force
۳- قابلیت پیادهسازی الگوریتم به صورت موازی و توزیع شده
مشخصات کلی | |
تعداد صفحات | 30 |
حوزه تخصصی رشته 1 | رمزنگاری |
تعداد صفحات محصول | 20-40 |
فیلم آموزشی | دارد |
معرفی متغیر های ورودی نرم افزار | دارد |
زبان برنامه نویسی | |
زبان برنامه نویسی اول | #C |
زبان برنامه نویسی دوم | PYTHON |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam iaculis egestas laoreet. Etiam faucibus massa sed risus lacinia in vulputate dolor imperdiet. Curabitur pharetra, purus a commodo dignissim, sapien nulla tempus nisi, et varius nulla urna at arcu.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam iaculis egestas laoreet. Etiam faucibus massa sed risus lacinia in vulputate dolor imperdiet. Curabitur pharetra, purus a commodo dignissim, sapien nulla tempus nisi, et varius nulla urna at arcuLorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam iaculis egestas laoreet. Etiam faucibus massa sed risus lacinia in vulputate dolor imperdiet. Curabitur pharetra, purus a commodo dignissim, sapien nulla tempus nisi, et varius nulla urna at arcu.